package com.molichuxing.gateway.bff.permission.services;

import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.exception.BizException;
import com.molichuxing.framework.result.ResponseResult;
import com.molichuxing.gateway.bff.permission.entity.request.AccountCreateVo;
import com.molichuxing.gateway.bff.permission.entity.request.AccountModifyVo;
import com.molichuxing.gateway.bff.permission.entity.request.ModifyPassowrdVo;
import com.molichuxing.gateway.bff.permission.entity.response.AccountLoginVo;
import com.molichuxing.gateway.bff.permission.entity.response.AccountVo;

public interface AccountBffService {

	/**
	 * 账号登录
	 * 
	 * @param params
	 *            account：账号 <br/>
	 *            password：密码 <br/>
	 *            systemType：系统类型-enum <br/>
	 * @return
	 * @throws BizException
	 * @throws Exception
	 */
	AccountLoginVo login(Map<String, Object> selectParams) throws BizException, Exception;

	/**
	 * 根据条件获取用户
	 * @param param
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	Paged<AccountVo> getAccountList(Map<String, Object> param, int pageNum, int pageSize);

	/**
	 * 添加新后台用户
	 * @param newAccount
	 * @return
	 */
	ResponseResult<Boolean> createAccount(AccountCreateVo newAccount);

	/**
	 * 修改后台用户
	 * @param newAccount
	 * @return
	 */
	ResponseResult<Boolean> modifyAccount(AccountModifyVo newAccount);

	/**
	 * 重置密码
	 * @param vo
	 * @return
	 */
	ResponseResult<Boolean> modifyResetPassword(AccountModifyVo vo);

	/**
	 * 修改密码
	 * @param vo
	 * @return
	 */
	public ResponseResult<Boolean> modifyPassword(ModifyPassowrdVo vo);

	void logOut();
}
